# 使用edge-tts播放输出，避免保存临时文件
# 直接将edge-tts的输出通过管道传递给音频播放器
# edge-playback --text "你好" --voice zh-CN-YunxiNeural
# 查看支持的语音
# edge-tts --list-voices

import subprocess

def talkContent(text):
    # 创建edge-tts进程，输出音频数据到管道
    tts_process = subprocess.Popen([
                                    'edge-tts',
                                    '--text', text,
                                    '--voice', 'zh-CN-XiaoxiaoNeural', # zh-CN-shaanxi-XiaoniNeural
                                    '--volume', '+100%',
                                    ],
        stdout=subprocess.PIPE
    )
    
    # 创建播放器进程，从管道接收音频数据
    player_process = subprocess.Popen(
        ['mpv', '--no-cache', '--no-terminal', '--', '-'],
        stdin=tts_process.stdout
    )
    
    # 关闭父进程的管道副本，避免死锁
    tts_process.stdout.close()
    
    # 等待播放器进程完成
    player_process.wait()

# if __name__ == "__main__":
#     talkContent("你好")